home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / tool7v13 / demoinp.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-09-25  |  5.6 KB  |  190 lines

  1. Program DemoInput;
  2.  
  3. { Purpose....... Demonstrates the use of the following units: win, screen,
  4.                  strings, datetime, cursor and input.
  5.   Comments...... None
  6.   Author........ Thayne Breetzke
  7.   Date.......... 22 March 1994
  8.   Updated....... 24 September 1994                                           }
  9.  
  10. Uses
  11.   Crt,
  12.   Dos,
  13.   Windows,
  14.   Screen,
  15.   Strings,
  16.   DateTime,
  17.   Cursor,
  18.   Input;
  19.  
  20. Var
  21.   InputString,
  22.   InputChoice : String;
  23.   InputDay,
  24.   InputMonth,
  25.   InputHour,
  26.   InputMin,
  27.   InputSec,
  28.   InputYear   : Word;
  29.   InputReal   : Real;
  30.   Key         : Char;
  31.   Extended,
  32.   HelpOn      : Boolean;
  33.   CState      : CStateRec;
  34.  
  35. {$F+}
  36. Procedure UpdateProc(Var Key: Char; Var Extended: Boolean; UpdateVar: Word);
  37.  
  38. Var
  39.   Hour,
  40.   Min,
  41.   Sec,
  42.   Sec100 : Word;
  43.  
  44. Begin
  45.   GetTime(Hour,Min,Sec,Sec100);
  46.   WriteXY(72,25,TimeStr(Hour,Min,Sec,0,':'),CalcAttr(Black,LightGray));
  47.   If (Key = #59) and not HelpOn then
  48.     Begin
  49.       HelpOn := True;
  50.       SaveCursor(InsertKey,CState);
  51.       CursorOff;
  52.       OpenWindow(7,8,74,21,' Help ',' Press Esc to close this help window ',
  53.                  DoubleFrame,CalcAttr(White,Red),CalcAttr(White,Red),True);
  54.       WriteMem(9,10,'No help available');
  55.       GetKey(Key,Extended,[#27],[],True,True,UpdateProc,0);
  56.       CloseWindow;
  57.       RestoreCursor(CState);
  58.       Key := #0;
  59.       HelpOn := False
  60.     end
  61. end;
  62. {$F-}
  63.  
  64.  
  65. Procedure SetupScreen;
  66.  
  67. Begin
  68.   TextAttr := 7;
  69.   CursorOff;
  70.   HelpOn := False;
  71.   ClearArea(1,1,80,25,CalcAttr(LightGray,0),'▒');
  72.   DrawBox(4,2,77,4,'','',DoubleFrame,CalcAttr(15,1),CalcAttr(14,1),True);
  73.   WriteMem(5,3,Center('The "Complete" Borland Turbo Pascal 6.0 Toolbox',72));
  74.   WriteXY(1,25,CopyChar(' ',80),CalcAttr(Black,LightGray));
  75.   WriteXY(2,25,'F1',CalcAttr(Red,LightGray));
  76.   WriteXY(5,25,'Help',CalcAttr(Black,LightGray));
  77.   OpenWindow(11,10,70,17,'',' Press Ctrl-Enter to continue ',
  78.              SingleFrame,CalcAttr(White,LightGray),CalcAttr(White,LightGray),True);
  79. end;
  80.  
  81.  
  82. Procedure DemoGetKey;
  83.  
  84. Begin
  85.   WriteXY(19,12,'Using GetKey routine to scan for keypresses',CalcAttr(Black,LightGray));
  86.   WriteXY(15,14,'Last key pressed: ',CalcAttr(Black,LightGray));
  87.   WriteXY(15,15,'Was it extended?: ',CalcAttr(Black,LightGray));
  88.   Repeat
  89.     GetKey(Key,Extended,[#0..#255],[#0..#255],True,True,UpdateProc,0);
  90.     WriteXY(33,14,Key+' (#'+NumToStr(Ord(Key),0,0,False)+') ',CalcAttr(Black,LightGray));
  91.     WriteXY(33,15,BoolToStr(Extended,'Yes/No')+' ',CalcAttr(Black,LightGray))
  92.   until Key = #10
  93. end;
  94.  
  95.  
  96. Procedure DemoReadString(Var InputString: String);
  97.  
  98. Begin
  99.   ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
  100.   WriteXY(12,12,Center('Using ReadString routine to read a string',58),CalcAttr(Black,LightGray));
  101.   WriteXY(15,14,'Enter a string:',CalcAttr(Black,LightGray));
  102.   InputString := '';
  103.   ReadString(InputString,31,14,50,25,[#32..#126],False,[#13,#10,#27],[#45],
  104.              Key,Extended,True,False,CalcAttr(Black,LightGray),UpdateProc,0)
  105. end;
  106.  
  107.  
  108. Procedure DemoReadDate(Var InputYear,InputMonth,InputDay: Word);
  109.  
  110. Var
  111.   DayOfWeek: Word;
  112.  
  113. Begin
  114.   ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
  115.   WriteXY(12,12,Center('Using ReadDate routine to read a date',58),CalcAttr(Black,LightGray));
  116.   WriteXY(15,14,'Enter a date:',CalcAttr(Black,LightGray));
  117.   GetDate(InputYear,InputMonth,InputDay,DayOfWeek);
  118.   ReadDate(InputYear,InputMonth,InputDay,29,14,1,'/',[#27,#13,#10],[],[],[],Key,
  119.            Extended,2000,50,True,False,CalcAttr(Black,LightGray),UpdateProc,0)
  120. end;
  121.  
  122.  
  123. Procedure DemoReadTime(Var InputHour,InputMin,InputSec: Word);
  124.  
  125. Var
  126.   Sec100: Word;
  127.  
  128. Begin
  129.   ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
  130.   WriteXY(12,12,Center('Using ReadTime routine to read a time',58),CalcAttr(Black,LightGray));
  131.   WriteXY(15,14,'Enter a time:',CalcAttr(Black,LightGray));
  132.   GetTime(InputHour,InputMin,InputSec,Sec100);
  133.   ReadTime(InputHour,InputMin,InputSec,29,14,[#27,#13,#10],[],[],[],Key,
  134.            Extended,2000,50,True,False,CalcAttr(Black,LightGray),UpdateProc,0)
  135. end;
  136.  
  137.  
  138. Procedure DemoReadReal(Var InputReal: Real);
  139.  
  140. Var
  141.   Sec100: Word;
  142.  
  143. Begin
  144.   ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
  145.   WriteXY(12,12,Center('Using ReadReal routine to read a real value',58),CalcAttr(Black,LightGray));
  146.   WriteXY(15,14,'Enter a real number:',CalcAttr(Black,LightGray));
  147.   InputReal := 0;
  148.   ReadReal(InputReal,35,14,8,2,True,[#27,#13,#10],[],Key,
  149.            Extended,True,True,CalcAttr(Black,LightGray),UpdateProc,0)
  150. end;
  151.  
  152.  
  153. Procedure DemoReadChoice(Var InputChoice: String);
  154.  
  155. Var
  156.   Sec100: Word;
  157.  
  158. Begin
  159.   ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
  160.   WriteXY(12,12,Center('Using ReadChoice routine to read a choice',58),CalcAttr(Black,LightGray));
  161.   WriteXY(15,14,'Choose a value (Y/N/A):',CalcAttr(Black,LightGray));
  162.   ReadChoice(InputChoice,'Yes|Y,No|N,Always|A',39,14,0,[#27,#13,#10],[],Key,
  163.            Extended,True,CalcAttr(Black,LightGray),UpdateProc,0)
  164. end;
  165.  
  166.  
  167.  
  168. Begin
  169.   SetupScreen;
  170.   DemoGetKey;
  171.   DemoReadString(InputString);
  172.   DemoReadDate(InputYear,InputMonth,InputDay);
  173.   DemoReadTime(InputHour,InputMin,InputSec);
  174.   DemoReadReal(InputReal);
  175.   DemoReadChoice(InputChoice);
  176.   CloseWindow;
  177.   CursorOn(False);
  178.   ClrScr;
  179.   Writeln('String entered: '+InputString);
  180.   Writeln('Upper case:     '+Upper(InputString));
  181.   Writeln('Lower case:     '+Lower(InputString));
  182.   Writeln;
  183.   Writeln('Date entered: '+DateStr(InputYear,InputMonth,InputDay,7,'/'));
  184.   Writeln;
  185.   Writeln('Time entered: '+TimeStr(InputHour,InputMin,InputSec,5,':'));
  186.   Writeln;
  187.   Writeln('Real number entered: '+NumToStr(InputReal,8,2,False));
  188.   Writeln;
  189.   Writeln('Choice selected: '+InputChoice)
  190. end.